As the popularity of mobile devices continues to grow, software developers have flooded the market with thousands of application programs (apps) for mobile devices. Today, these mobile apps provide functionality ranging from general purpose productivity and information retrieval, including email, calendar, contacts, stock market and weather information, to special purpose applications, including medical and health monitoring, social media, air travel monitoring, taxi rental, restaurant ranking, etc.
In HyperText Markup Language (HTML) based web applications, each state of an application can be discovered by a web crawler. Unlike HTML based web applications, many mobile apps have deep states that are not exposed (and therefore not discoverable by a web crawler) but are designed into the app so that external processes can reach those deep states. For example, an app that ranks restaurants based on social media input may have several different and diverse navigation paths that a user may follow. The user may select a “restaurant” category and then filter the selection to display those that offer home delivery. From there, the user may select a particular restaurant that is “most popular” and within a predefined price range. The user may next select a particular restaurant from the filtered selection list. This will take the user to a web page describing the particular restaurant including pictures, location map, and other patron reviews.
The web page describing the particular restaurant selected corresponds to a deep state within the app. While the user could navigate to the deep state by making the series of navigation choices described above, an external computer process or another app running will typically not be able to reach these deep states unless the developer of the app programmed (coded) the app to have the ability to reach that deep state.
Programming an app to include deep states that are accessible by other external computer processes and other apps can be technically challenging and is time consuming. Most apps that are available to the public do not have exposed (publicly available) deep links by which deep states programmed into the app may be accessed.
The background description provided here is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.